interface Styles {
  info: string
  primary: string
  redHighlight: string
  unknown: string
  link: string
}

type StyleKey = keyof Styles | 'none'

export class CommonUtils {
  readonly STYLES: Styles

  constructor() {
    this.STYLES = {
      info: 'color: #545454 !important;', // 黑色样式
      primary: 'color: #1a73e8 !important;', // 蓝色高亮样式
      redHighlight: 'color: #f44336 !important;', // 红色高亮样式
      unknown: 'color: #f44336 !important;', // 红色高亮样式
      link: 'color: #1a73e8 !important; text-decoration: underline !important;', // 链接样式
    }
  }

  // noinspection JSUnusedAssignment
  /**
   * 格式化信息显示，未知值显示为红色
   * @param value 要显示的值
   * @param style 样式（可选）
   * @param defaultValue 默认值（可选）
   * @returns 格式化后的 HTML 片段
   */
  formatInfo(value: string, style: StyleKey = 'none', defaultValue: string = '未知'): string {
    const displayValue = value || defaultValue
    if (displayValue === '未知') {
      style = 'unknown'
    }
    if (style === 'none') {
      return displayValue
    }
    return `<span style="${this.STYLES[style]}">${displayValue}</span>`
  }
}
